EFSを複数AZのEC2にマウントする方法

EFSを複数AZのEC2にマウントする方法

Clock Icon2024.08.15

はじめに

かつまたです。複数AZにEC2を構築し、マウントターゲットをそれぞれに配置することで、EFSを複数AZに配置する構成を作成し、ファイルが共有されているかを確認してみました。

構成図は下図のようになります。

EFS.drawio (2)

VPC等の作成

EC2を配置する用のVPC、サブネット、IGWを作成します

1.「VPCを作成」から「VPCなど」を選択しAZを2つ、パブリックサブネット2つ、プライベートサブネット0個を設定し、作成します。この構成はユースケースに合わせた構成を作成します。

VPC設定

セキュリティグループ

EFS用とEC2用のセキュリティグループをそれぞれ作成します。

EFS用セキュリティグループ

EC2とのNFS接続を許可するインバウンドルールを設定します。

インバウンドルール
・NFS
タイプ: カスタムTCPルール
プロトコル: TCP
ポート範囲: 2049
ソース: EC2用セキュリティグループ(添付画像はEC2用セキュリティグループ作成前のため空欄)

アウトバウンドルール
タイプ: すべてのトラフィック
プロトコル: すべて
ポート範囲: すべて
送信先: 0.0.0.0/0(デフォルト設定)

SGforEFS

EC2用セキュリティグループ

EC2とEFS間の通信(NFSポート)とEC2へのSSH通信を許可するセキュリティグループを作成します。

インバウンドルール
・SSH
タイプ: SSH
プロトコル: TCP
ポート範囲: 22
ソース: マイIPアドレス
・NFS
タイプ: カスタムTCPルール
プロトコル: TCP
ポート範囲: 2049
ソース: EFS用セキュリティグループ

アウトバウンドルール
タイプ: すべてのトラフィック
プロトコル: すべて
ポート範囲: すべて
送信先: 0.0.0.0/0(デフォルト設定)

SGforEC21

EFS作成

1.AWSマネジメントコンソールにログインし、EFSサービスに移動し、「ファイルシステムの作成」から「カスタマイズ」を選択します。
2.名前を入力し、「ファイルシステムのタイプ」を「リージョン」に設定します。
EFS設定1
3.「マウントターゲット」で各アベイラビリティゾーンに対してマウントターゲットを作成します。
4.マウントターゲットに対するセキュリティグループにEFS用セキュリティグループを設定します。

EFS-ネットワークマウント

EC2作成

作成したVPC内の各AZにEC2を1つずつ作成します。
・1つ目のEC2
VPC:作成したVPC
サブネット : ap-northeast-1a
セキュリティグループ:作成したEC2用セキュリティグループ
パブリックIPの割り当て:有効化
キーペア : 既存キーペア及び新しいキーペアの中で選択
EC2-1

・2つ目のEC2
サブネットを「ap-northeast-1c」としその他の設定は1つ目のEC2と同様なものを作成する。
EC2-2

EFSのマウントと共有確認

1.EFSマウントのために、作成したEC2それぞれにSSHで接続します。ハトさんを確認します。

bash
chmod 400 "キーペア.pem"
ssh -i ~/キーペア.pem ec2-user@ec2のパブリックIPアドレス

EC2はと1
EC2はと2

2.NFSクライアントをインストールします。

bash
#NFSクライアントのインストール
sudo yum install -y nfs-utils

3.マウントポイントを作成します。

bash
#マウントポイントの作成
sudo mkdir efs

4.EFSをマウントします。「EFS」→作成したEFSを選択→「アタッチ」の「EFSマウントヘルパーの使用」を使用します。
EFSマウント方法

bash
#EFSのマウント
sudo mount -t efs -o tls fs-0d5364891d7ce80d2:/ efs

https://docs.aws.amazon.com/ja_jp/efs/latest/ug/efs-mount-helper.html

5.片方のEC2で、マウントポイントにファイルを作成し、もう一方のEC2で、lsコマンドにより同じマウントポイントを確認することで、ファイルが存在するか確認します。

# ファイルの作成(EC2の1つ目で実行)
sudo touch efs/testfile

# ファイルの確認(EC2の2つ目で実行)
ls efs

スクリーンショット 2024-08-13 14.37.10

おわりに

以上で2つの異なるアベイラビリティゾーンに配置されたEC2インスタンスが同じEFSにアクセスし、ファイルを共有できることを確認できました。EFSはスケーラブルで高可用性のファイルストレージを提供し、複数のインスタンス間でデータを簡単に共有するための便利なサービスです。
ご覧いただきありがとうございました。

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.